草庐IT

LeetCode-400. 第N位数字

全部标签

LeetCode - 460 LFU缓存(Java & JS & Python)

题目来源460.LFU缓存-力扣(LeetCode)题目描述请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。实现LFUCache类:LFUCache(intcapacity)-用数据结构的容量capacity初始化对象intget(intkey)-如果键key存在于缓存中,则获取键的值,否则返回-1。voidput(intkey,intvalue)-如果键key已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量capacity时,则应该在插入新项之前,移除最不经常使用的项。在此问题中,当存在平局(即两个或更多个键具有相同使用频率)时,应该去除最久未使用的键。为了确定最不

算法沉淀——栈(leetcode真题剖析)

算法沉淀——栈01.删除字符串中的所有相邻重复项02.比较含退格的字符串03.基本计算器II04.字符串解码05.验证栈序列栈(Stack)是一种基于先进后出(LastIn,FirstOut,LIFO)原则的数据结构。栈具有两个主要的操作:压栈(Push):将元素添加到栈的顶部。出栈(Pop):从栈的顶部移除元素。栈常常用于需要反转操作顺序的场景,或者在需要记录操作历史的情况下。在算法中,栈的应用广泛,以下是一些典型的栈算法:括号匹配问题:使用栈来检查表达式中的括号是否匹配,例如检查()、[]、{}是否正确嵌套。逆波兰表达式求值:通过栈来实现对逆波兰表达式的求值,其中操作数和操作符都存储在栈中

java数据结构与算法刷题-----LeetCode566. 重塑矩阵

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846文章目录1.法一,下标填充2.法二:数学除法和取余1.法一,下标填充代码:时间复杂度O(r*c).除题目要求外,算法本身没有需要额外空间,空间复杂度O(1)classSolution{publicint[][]matrixReshape(int[][]mat,intr,intc){intmatR=mat.length,matC=mat[0].length

LeetCode 0429.N 叉树的层序遍历:广度优先搜索(BFS)

【LetMeFly】429.N叉树的层序遍历:广度优先搜索(BFS)力扣题目链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal/给定一个N叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由null值分隔(参见示例)。 示例1:输入:root=[1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例2:输入:root=[1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11

c++ - 在 C++ 中查找 int 的最后一位数字的最有效方法是什么

我想尝试编写自己的BigInt类,所以我想知道在C中查找数字最后一位数字的最有效方法是什么,尤其是对于一个非常大的int输入。 最佳答案 lastDigit=number%10; 关于c++-在C++中查找int的最后一位数字的最有效方法是什么,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3001576/

算法沉淀——动态规划之简单多状态 dp 问题(上)(leetcode真题剖析)

算法沉淀——动态规划之简单多状态dp问题上01.按摩师02.打家劫舍II03.删除并获得点数04.粉刷房子01.按摩师题目链接:https://leetcode.cn/problems/the-masseuse-lcci/一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例1:输入:[1,2,3,1]输出:4解释:选择1号预约和3号预约,总时长=1+3=4。示例2:输入:[2,7,9,3,1]输出:12解释

c++ - 如何存储大小位数组,例如大小 % 8 != 0?

我处理一些数据,它表示为一个位序列,number(378)其中不能被8整除。有哪些可能的方法来处理这样的序列?我需要存储它、处理它、将一个序列附加到另一个序列。我考虑过的选项:四舍五入到最接近的数字%8==0,并使用该大小的字符数组。使用bitfield,据我所知,bitfield的内存对齐是实现定义的。更新:我正在使用的位序列的属性:它是使用Reed-Solomon编码算法从给定单词生成的代码字。因此,将位作为独立值使用对我来说没有实际用处,我主要关心的是如何存储代码字并将新代码字附加到现有代码字上,因为为了减少突发错误的影响,我创建了交错矩阵 最佳答案

【算法与数据结构】718、1143、1035、392、115、LeetCode最长重复子数组+最长公共子序列+不相交的线+判断子序列+不同的子序列

文章目录一、718、最长重复子数组二、1143、最长公共子序列三、1035、不相交的线四、392、判断子序列五、115、不同的子序列六、完整代码所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。一、718、最长重复子数组  思路分析:第一步,动态数组的含义。dp[i][j]dp[i][j]dp[i][j]代表以下标i−1i-1i−1为结尾的nums1,和以下标j−1j-1j−1为结尾的nums2,最长重复子数组长度为dp[i][j]dp[i][j]dp[i][j]。第二步,递推公式。根据dp[i][j]dp[i][j]dp[i][j]的定义,dp[i][

LeetCode 100题目(python版本)待续...

一.哈希1.两数之和题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。示例:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。代码classSolution:  deftwoSum(self,nums:List[int],target:int)->List[int]:    hash_map={}    fori,numinenum

算法打卡day03|链表专题01:虚拟头节点使用、单链表查找删除元素、链表设计通过索引(add、delete、get)、使用双指针思路实现链表反转|Leetcode203、707、206

1.基础知识——链表是由指针串联在一起的线性结构分类:(1)单链表:每个节点由数据域与指针域组成{data,next}(2)双链表:每个节点由数据域及指针域(两个指针)组成{data,pre,next}(3)循环链表:节点结构与单链表一致,但是首尾相连存储:内存分布不是连续的链表定义代码※链表优点在于长度不固定,能够实现动态增删,适用于增删频繁但是查询频率比较低的情景Leetcode203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/分析:经典链表操作,主要需要考虑两种场景当前节